//
//  HQMapMarkerOptionsModel.h
//  o_amap
//
//  Created by Q神 on 2021/4/14.
//

#import <Foundation/Foundation.h>
#import "HQMapMakerExtData.h"
/// 导航
#import <AMapNaviKit/AMapNaviKit.h>
#import "LatLngModel.h"

@class MarkerOptionsModel;

NS_ASSUME_NONNULL_BEGIN

@interface HQMapMarkerOptionsModel : NSObject

@property (nonatomic, strong) NSArray<MarkerOptionsModel *> *markerOptionsList;
@property (nonatomic, assign) BOOL moveToCenter;

+ (HQMapMarkerOptionsModel *)createMarkerOptionsModelWithParams:(NSDictionary *)params;

- (void)addMarker:(MAMapView *)mapView;
- (void)addMarkers:(MAMapView *)mapView;

@end


@interface MarkerOptionsModel : NSObject

/// Marker覆盖物的图标 [Android, iOS]
@property (nonatomic, copy) NSString *icon;

@property (nonatomic, strong) UIView *widget;

/// Marker覆盖物锚点在水平范围的比例 [Android, iOS]
@property (nonatomic, assign) NSInteger anchorU;

/// Marker覆盖物锚点垂直范围的比例 [Android, iOS]
@property (nonatomic, assign) NSInteger anchorV;

/// Marker覆盖物是否可拖拽 [Android, iOS]
@property (nonatomic, assign) BOOL draggable;

/// Marker覆盖物的InfoWindow是否允许显示, 可以通过 MarkerOptions.infoWindowEnable(boolean) 进行设置 [Android, iOS]
@property (nonatomic, assign) BOOL infoWindowEnable;

/// Marker覆盖物的位置坐标 [Android, iOS]
@property (nonatomic, strong) LatLngModel *position;

/// Marker覆盖物的水平偏移距离 [Android, iOS]
@property (nonatomic, assign) NSInteger infoWindowOffsetX;

/// Marker覆盖物的垂直偏移距离 [Android, iOS]
@property (nonatomic, assign) NSInteger infoWindowOffsetY;

/// 设置 Marker覆盖物的文字描述 [Android, iOS]
@property (nonatomic, copy) NSString *snippet;

/// Marker覆盖物的标题 [Android, iOS]
@property (nonatomic, copy) NSString *title;

/// 是否固定在屏幕一点, 注意，拖动或者手动改变经纬度，都会导致设置失效 [iOS暂未实现]
@property (nonatomic, assign) BOOL lockedToScreen;

/// 固定屏幕点的坐标 [iOS暂未实现]
@property (nonatomic, copy) NSString *lockedScreenPoint;

/// 自定制弹出框view, 用于替换默认弹出框. [iOS暂未实现]
@property (nonatomic, copy) NSString *customCalloutView;

/// 默认为YES,当为NO时view忽略触摸事件 [iOS]
@property (nonatomic, assign) BOOL enabled;

/// 是否高亮 [iOS]
@property (nonatomic, assign) BOOL highlighted;

/// 设置是否处于选中状态, 外部如果要选中请使用mapView的selectAnnotation方法 [iOS]
@property (nonatomic, assign) BOOL selected;

/// 显示在默认弹出框左侧的view [iOS暂未实现]
@property (nonatomic, copy) NSString *leftCalloutAccessoryView;

/// 显示在默认弹出框右侧的view [iOS暂未实现]
@property (nonatomic, copy) NSString *rightCalloutAccessoryView;

/// 设置额外信息 一般用于设置mark自定id 唯一标示(必须设置一个id，后面删除需要根据对应的id进行删除)， dynamic 会在点击事件返回，如果写对象，返回徐用【''】解析或者自行序列化
@property (nonatomic, strong) HQMapMakerExtData *extData;


+ (MarkerOptionsModel *)createMarkerOptionsModelWithParams:(NSDictionary *)params;


@end

NS_ASSUME_NONNULL_END
